/*
 * Digi.cc
 *
 * @created Apr 11, 2013
 * @author Tim Niggemann, III Phys. Inst. A, RWTH Aachen University
 * @copyright GNU General Public License v3.0
 */

#include "digi/G4SipmDigi.hh"

G4ThreadLocal G4Allocator<G4SipmDigi> *G4SipmDigiAllocator = 0;
// G4SipmDigi 类的构造函数，初始化 G4SipmDigi 对象，设置 sipmId、time、cellId、weight 和 type 的初始值。
G4SipmDigi::G4SipmDigi() : sipmId(0), time(0), cellId(0), weight(1), type(UNDEFINED)
{
	//
}

G4SipmDigi::~G4SipmDigi()
{
}
// G4SipmDigi类的拷贝构造函数
G4SipmDigi::G4SipmDigi(const G4SipmDigi &right)
{
	sipmId = right.getSipmId();
	time = right.getTime();
	cellId = right.getCellId();
	weight = right.getWeight();
	type = right.getType();
}
// 重载赋值运算符，用于将一个 G4SipmDigi 对象赋值给另一个。
const G4SipmDigi &G4SipmDigi::operator=(const G4SipmDigi &right)
{
	sipmId = right.sipmId;
	time = right.time;
	type = right.type;
	weight = right.weight;
	return *this;
}
// 重载等于运算符，用于比较两个 G4SipmDigi 对象是否相等。如果 sipmId、time、type 和 weight 都相同，则返回1（true），否则返回0（false）。
int G4SipmDigi::operator==(const G4SipmDigi &right) const
{
	return (sipmId == right.sipmId) && (time == right.time) && (type == right.type) && (weight == right.weight);
}
// 获取和设置 sipmId、cellId、time、type 和 weight 的成员函数。
// 获取 sipmId 的值。
G4SipmId G4SipmDigi::getSipmId() const
{
	return sipmId;
}
// 设置 sipmId 的值。
void G4SipmDigi::setSipmId(G4SipmId _sipmId)
{
	sipmId = _sipmId;
}
// 获取 cellId 的值。
G4SipmCellId G4SipmDigi::getCellId() const
{
	return cellId;
}
// 设置 cellId 的值。
void G4SipmDigi::setCellId(G4SipmCellId _cellId)
{
	cellId = _cellId;
}
// 获取 time 的值。
double G4SipmDigi::getTime() const
{
	return time;
}
// 设置 time 的值。
void G4SipmDigi::setTime(double _time)
{
	time = _time;
}
// 获取 type 的值。
G4SipmDigiType G4SipmDigi::getType() const
{
	return type;
}
// 设置 type 的值。
void G4SipmDigi::setType(G4SipmDigiType _type)
{
	type = _type;
}
// 获取 weight 的值。
double G4SipmDigi::getWeight() const
{
	return weight;
}
// 设置 weight 的值。
void G4SipmDigi::setWeight(double _weight)
{
	weight = _weight;
}
